Linux Ubuntu 手动搭建webDav |
您所在的位置:网站首页 › apache webdav › Linux Ubuntu 手动搭建webDav |
1、安装
因为需要跟 zotero 进行交互,因此需要在服务器搭建一个webDav 以下是搭建步骤: sudo apt-get update sudo apt-get install apache2Ubuntu 安装apache2来实现 不同于Centos 安装好了之后,运行 a2enmod dav_fs a2enmod dav激活模块。 2、配置ports进入到 /etc/apache2 目录下。修改port,使得它不跟nginx起冲突 Listen 后面加上自己要自定义的接口 3、生成密码然后我们就要生成密码了: htpasswd -c /etc/apache2/webdav.password 你的用户名输入密码。 4、配置要暴露的文件路径然后进入到 /etc/apache2/sites-available 目录下。 可以选择新建一个conf文件,也可以选择修改原来的 000-default.conf ServerAdmin webmaster@localhost DocumentRoot /home/imp/edc_demo/webdav ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined DavLockDB "/var/DavLock" DAV On Options Indexes MultiViews AllowOverride None Order allow,deny allow from all Alias /webdav /home/imp/edc_demo/webdav DAV On AuthType Basic AuthName "agile" AuthUserFile /var/passwd.dav Require valid-user解释一下上面的几个参数哈。 :代表监听的端口,也是之后要在浏览器输入的端口,这个端口和刚刚ports.conf里配的是同一个 ServerAdmin webmaster@localhost:设置管理员邮箱地址。 DocumentRoot /home/imp/edc_demo/webdav:指定网站的根目录。 ErrorLog ${APACHE_LOG_DIR}/error.log:指定错误日志文件的位置。 CustomLog ${APACHE_LOG_DIR}/access.log combined:设置访问日志的位置和格式。 DavLockDB "/var/DavLock":指定 WebDAV 的锁定数据库文件位置。 :配置 /home/imp/edc_demo/webdav 目录的访问权限。 DAV On:启用 WebDAV 功能。 Options Indexes MultiViews:允许目录浏览和多视图。 AllowOverride None:禁止使用 .htaccess 文件覆盖配置。 Order allow,deny 和 allow from all:控制访问权限,允许所有客户端访问此目录。 Alias /webdav /home/imp/edc_demo/webdav:创建别名 /webdav,指向 /home/imp/edc_demo/webdav 目录。 :针对 /webdav 路径的配置。 DAV On:启用 WebDAV 功能。 AuthType Basic:启用基本身份验证。 AuthName "agile":设置认证提示信息。 AuthUserFile /var/passwd.dav:指定用户名和密码的文件。 Require valid-user:要求用户进行验证后才能访问 /webdav 目录。 有点多,没事,我概括一下 把 AuthName "agile" AuthUserFile /etc/apache2/webdav.password 改成 自己的用户名,把刚才生成的password文件的位置放进来。 把 Alias /webdav /home/imp/edc_demo/webdav 后面改成你要暴露的linux 文件路径地址。 5、重启apachesudo systemctl restart apache2 6、验证一下打开浏览器输入 http://ip:host/webdav/ 输入用户名密码 6、我写了一个脚本我写了一个脚本。这个脚本可以在你搭建好这套之后,通过传入用户名、密码,自动创建一个账号,并且在 目录下 建一个 和用户同名的 文件夹 它分成2个部分 add_user.exp #!/usr/bin/expect set user [lindex $argv 0] set password [lindex $argv 1] spawn sudo htpasswd -c /etc/apache2/webdav.password $user expect "New password:" send "$password\r" expect "Re-type new password:" send "$password\r" interactadd_user.sh #!/bin/bash user=$1 password=$2 # 创建文件夹 echo "创建文件夹 /home/imp/edc_demo/webdav/$user" mkdir -p "/home/imp/edc_demo/webdav/$user" # 添加用户 echo "添加 $user 对应的webdav配置" expect ./add_user.exp "$user" "$password" # 更新配置文件 file="/etc/apache2/sites-available/000-default.conf" if grep -q "Location /webdav/$user\b" "$file"; then echo "Location already exists in $file" else sed -i "// i\\ \\ \t\\ \t\tDAV On\\ \t\tAuthType Basic\\ \t\tAuthName \"$user\"\\ \t\tAuthUserFile /etc/apache2/webdav.password\\ \t\tRequire valid-user\\ \t\\ " "$file" systemctl restart apache2 fi echo "添加用户成功!!!!"使用的话,就是 ./add_user.sh 用户名 密码执行完这套之后,可以在浏览器里访问 http://ip:port/webdav/用户名,访问到这个用户才能访问到的文件夹。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |